﻿Public Class FRGuru

    'member variables
    Private _cGuru As CGuru

    'events 
    Public Event DataTerupdate()


#Region "SettinganAwal"
    '-----------------------------------------------------------------------------------------------
    Private IsFormBeingDragged As Boolean = False
    Private MouseDownX As Integer
    Private MouseDownY As Integer

    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles LabelJudul.MouseDown, MyBase.MouseDown
        If e.Button = MouseButtons.Left Then
            IsFormBeingDragged = True
            MouseDownX = e.X
            MouseDownY = e.Y
        End If
    End Sub

    Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseUp, LabelJudul.MouseUp
        If e.Button = MouseButtons.Left Then
            IsFormBeingDragged = False
        End If
    End Sub

    Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles MyBase.MouseMove, LabelJudul.MouseMove
        If IsFormBeingDragged Then
            Dim temp As Point = New Point()

            temp.X = Me.Location.X + (e.X - MouseDownX)
            temp.Y = Me.Location.Y + (e.Y - MouseDownY)
            Me.Location = temp
            temp = Nothing
        End If
    End Sub

    Private Sub Panel1_Paint(sender As Object, e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
        Dim p As New Pen(Color.FromArgb(213, 251, 185), 2)
        'set text box border
        PaintTextBox(Me, e.Graphics, p)

        p.Dispose()
    End Sub

    Private Sub PaintTextBox(cont As Control, g As Graphics, p As Pen)
        For Each ctl As Control In cont.Controls
            If ctl.Visible Then
                p.Color = ctl.BackColor
                If (TypeOf ctl Is TextBox) Or (TypeOf ctl Is ComboBox) Or (TypeOf ctl Is PictureBox) Then
                    g.DrawRectangle(p, New Rectangle(ctl.Location + New Size(1, 1), ctl.Size - New Size(2, 2)))
                ElseIf TypeOf ctl Is Panel Then
                    PaintTextBox(ctl, g, p)
                ElseIf TypeOf ctl Is GroupBox Then
                    PaintTextBox(ctl, g, p)
                End If
            End If

        Next
    End Sub

    Private Sub SetRegionTextBox(cont As Control)
        For Each ctl As Control In cont.Controls
            If (TypeOf ctl Is TextBox) Or (TypeOf ctl Is ComboBox) Or (TypeOf ctl Is PictureBox) Then
                If ctl.Region Is Nothing Then
                    ctl.Region = New Region(New Rectangle(2, 2, ctl.Width - 4, ctl.Height - 4))
                Else
                    ctl.Region = Nothing
                End If
            ElseIf TypeOf ctl Is Panel Then
                SetRegionTextBox(ctl)
            ElseIf TypeOf ctl Is GroupBox Then
                SetRegionTextBox(ctl)
            End If
        Next
    End Sub


    Private Sub btnClose_Click(sender As System.Object, e As System.EventArgs) Handles btnClose.Click
        Me.Close()
    End Sub

    '-----------------------------------------------------------------------------------------------
#End Region

    

Public Sub New(ByVal idguru As Integer, ByVal nip As String, ByVal nama As String)

    ' This call is required by the designer.
    InitializeComponent()

    ' Add any initialization after the InitializeComponent() call.
    Me.Text = My.Settings.NamaAplikasi & " [Rubah Guru]"

    Me.IdGuru = idguru
    Me.Nama = nama
    Me.NIP = nip

    'tampilkan ke control
    TBNama.Text = nama
    TBNip.Text = nip
End Sub

Public Property IdGuru As Integer
Public Property Nama As String
Public Property NIP As String

Private Sub SimpanToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpanToolStripMenuItem.Click
    BtnSimpan.PerformClick()
End Sub

Private Sub BatalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BatalToolStripMenuItem.Click
    BtnBatal.PerformClick()
End Sub

Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click
    'validasi
    Dim _isError As Boolean = False

    If TBNama.Text.Trim = "" Then
        _isError = True
        TBNama.BackColor = Color.Orange
    End If

    If TBNip.Text.Trim = "" Then
        _isError = True
        TBNip.BackColor = Color.Orange
    End If

    If _isError Then
        MessageBox.Show("Simpan gagal, data kosong.", "Peringatan", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    Else
        _cGuru = New CGuru
        Try
            _cGuru.rubah(TBNip.Text.Trim, TBNama.Text.Trim, IdGuru)
            RaiseEvent DataTerupdate()
            Me.Close()
        Catch ex As Exception
            Throw ex
        End Try
    End If
End Sub

Private Sub BtnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBatal.Click
    If MessageBox.Show("Anda mau keluar? jika ya data tidak akan disimpan.", "Peringatan", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
        Me.Close()
    End If
End Sub

Private Sub TBNip_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TBNip.TextChanged
    Me.NIP = TBNip.Text.Trim
End Sub

Private Sub TBNama_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TBNama.TextChanged
    Me.Nama = TBNama.Text.Trim
End Sub

    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        Me.Opacity = Me.Opacity + 0.1
        If Me.Opacity >= 1 Then
            Me.Timer1.Enabled = False
        End If
    End Sub

    Private Sub FRGuru_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'set text box border
        SetRegionTextBox(Me)
    End Sub
End Class